import pandas as pd

# 读取文件
excel_file = pd.ExcelFile('C:\\Users\\admin\\Desktop\\Excel\\excel\\student.xlsx')

# 获取指定工作表中的数据
df = excel_file.parse('Sheet1')

# 1. 读取文件内容，并打印输出
print('数据基本信息：')
df.info()

# 查看数据集行数和列数
rows, columns = df.shape

if rows < 100 and columns < 20:
    # 短表数据（行数少于100且列数少于20）查看全量数据信息
    print('数据全部内容信息：')
    print(df.to_csv(sep='\t', na_rep='nan'))
else:
    # 长表数据查看数据前几行信息
    print('数据前几行内容信息：')
    print(df.head().to_csv(sep='\t', na_rep='nan'))

# 2. 按性别统计学生人数，并打印输出
gender_count = df['性别'].value_counts()
print('按性别统计学生人数：')
print(gender_count)

# 3. 按年龄段统计学生人数，并打印输出
bins = [0, 17, 25, 40, 100]
labels = ['青少年', '青年', '中年', '老年']
df['年龄段'] = pd.cut(df['年龄'], bins=bins, labels=labels)
age_group_count = df['年龄段'].value_counts()
print('按年龄段统计学生人数：')
print(age_group_count)

# 4. 按地区（外省按省份，海南省按市县）统计学生人数，并打印输出
def region_classification(region):
    if '海南' in region:
        return region.split('省')[1] if '省' in region else region
    else:
        return region.split('省')[0] if '省' in region else region.split('市')[0]

df['地区分类'] = df['家庭地址'].apply(region_classification)
region_count = df['地区分类'].value_counts()
print('按地区统计学生人数：')
print(region_count)